#ifndef TUPLE_H
#define TUPLE_H

# include <stdbool.h>

/** Puntero a sTuple */
typedef struct sTuple * Tuple;

/** Definición de Key y Data */
typedef long int Key;
typedef long int Data;

/** Constructor */
Tuple tuple_fromKeyData (Key k, Data d);

/** Devuelve la primer componente */
Key tuple_fst (Tuple t);

/** Devuelve la segunda componente */
Data tuple_snd (Tuple t);

/** Devuelve un copia */
Tuple tuple_clone (Tuple t);

/** Destructor. Destruye la tupla con su Key y Data */
Tuple tuple_destroy(Tuple t);

/** Compara dos tuplas */
bool tuple_compare (Tuple t1, Tuple t2);

#endif

